package com.cqc.manage.token;

import com.cqc.manage.dto.PayloadDto;
import com.cqc.manage.entity.User;
import com.nimbusds.jose.JOSEException;

import java.text.ParseException;

/**
 * JWT Toke接口
 */
public interface JwtTokenService {

    /**
     * 通过HMAC生成token
     * @param payloadStr
     * @return
     * @throws JOSEException
     */
    String generateTokenByHMAC(String payloadStr) throws JOSEException;

    /**
     * 校验token
     * @param token
     * @return
     * @throws ParseException
     */
    PayloadDto verifyTokenByHMAC(String token) throws ParseException, JOSEException;

    /**
     * 获取jwt默认DTO
     * @return
     */
    PayloadDto getDefaultPayloadDto(User user);
}
